03B-network_measure
Detect motifs in networks
networks_motif: data.frame
networks_motif_randomized: data.frame for all randomized networks motif counts
Empirical network motifs. 13 communities x 7 motifs = 91 rows
Rows: 91 Columns: 4
── Column specification ────────────────────────────────────────────────────────────────────
Delimiter: ","
chr (1): Community
dbl (3): Motif, Count, Fraction
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
Shuffled network motifs. 13 communities x 7 motifs x 1000 bootstraps = 91000 rows
Competitive hierarchy
See Higgins2017 for the hierarchy score calculation. Briefly, the hierarchy score is based on the relative abundance of each pair and it ranges from 0.5 (pure non-hierarchy with all pairs coexist at 50%:50%) to 1 (pure hierarchy with all pairs being exclusion and forming a transitive network).
The hierarchy score of each communities is compared to a set of 1000 randomized networks which keeps the same relative abundances of each pairs but shuffled.
Diagonal analysis
For record, it took 1655 seconds ~= 26 minutes to compute the diagonal measures for 13 communities X 10000 randomization, merge them into one single data frame.
data/output/networks_diag
data/output/networks_diag_randomized
For a network matrix \(m_{ij}\), the fraction of coexistence as a fucntion of distance to diagonal is calculated as the
\[\frac{}{\lvert i-j \lvert}\]
networks_diag_randomized has four columns
Randomization: the number of randomization
Rows: 37 Columns: 3
── Column specification ────────────────────────────────────────────────────────────────────
Delimiter: ","
chr (1): Community
dbl (2): DistanceToDiagonal, CountCoexistence
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
Rows: 34840 Columns: 4
── Column specification ────────────────────────────────────────────────────────────────────
Delimiter: ","
chr (1): Community
dbl (3): Randomization, DistanceToDiagonal, CountCoexistence
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
Summary
isolates: 68 isolates
pairs: 186 pairs
communities: metadata of 13 communities
network_community.Rdata saves one R lists. net_list has 13 tbl_graph objects. that describes the competitive networks of my communities, where p_net_list has 13 pictures.
isolates <- read_csv(here::here("data/output/isolates.csv"))
Rows: 100 Columns: 62
── Column specification ────────────────────────────────────────────────────────────────────
Delimiter: ","
chr (8): Assembly, ExpID, Community, Family, Genus, Sequence, PreferredCS, SecretedCS
dbl (52): ID, Isolate, GenusScore, ColonyCount, DilutionFactor, Epsilon, Win, Lose, Draw...
lgl (2): Fermenter, GramPositive
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
pairs <- read_csv(here::here("data/output/pairs.csv"))
Rows: 248 Columns: 29
── Column specification ────────────────────────────────────────────────────────────────────
Delimiter: ","
chr (14): Assembly, Community, InteractionType, InteractionTypeFiner, ExpID1, Family1, G...
dbl (10): Isolate1, Isolate2, From, To, ID1, GenusScore1, ID2, GenusScore2, SeqDifferenc...
lgl (5): Fermenter1, GramPositive1, Fermenter2, GramPositive2, Isolate1Dominant
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
communities <- read_csv(here::here("data/output/communities.csv"))
Rows: 17 Columns: 4
── Column specification ────────────────────────────────────────────────────────────────────
Delimiter: ","
chr (1): Community
dbl (3): CommunitySize, CommunityPairSize, CommunitiyMotifSize
ℹ Use `spec()` to retrieve the full column specification for this data.
ℹ Specify the column types or set `show_col_types = FALSE` to quiet this message.
load(here::here("data/output/network_community.Rdata"))
Convert the graph file into txt
So that the graph is readable in python
Error: object 'f' not found
Plot network in matrix
Upper half matrices

Plot network in graph
There are some functions to play with

Combine matrix and network plot
$C1R2
[1] NA
$C1R4
[1] NA
$C1R6
[1] NA
$C1R7
[1] NA
$C2R6
[1] NA
$C2R8
[1] NA
$C4R1
[1] NA
$C7R1
[1] NA
$C8R4
[1] NA
$C10R2
[1] NA
$C11R1
[1] NA
$C11R2
[1] NA
$C11R5
[1] NA

LS0tCnRpdGxlOiAiQW5hbHlzaXMgb24gdGhlIGVtcGlyaWNhbCBpbnZhc2lvbiBuZXR3b3JrcyIKYXV0aG9yOiAiQ2hhbmctWXUgQ2hhbmciCmRhdGU6ICJgciBTeXMuRGF0ZSgpYCIKb3V0cHV0OgogIGh0bWxfbm90ZWJvb2s6ICAKICAgIHRvYzogeWVzCiAgICBudW1iZXJfc2VjdGlvbnM6IG5vCi0tLQoKYGBge3Igc2V0dXAsIGluY2x1ZGUgPSBGfQprbml0cjo6b3B0c19jaHVuayRzZXQoY2FjaGUgPSBGQUxTRSwgZWNobyA9IEZBTFNFKQoKbGlicmFyeSh0aWR5dmVyc2UpCmxpYnJhcnkoZGF0YS50YWJsZSkKbGlicmFyeShjb3dwbG90KQpsaWJyYXJ5KGlncmFwaCkKbGlicmFyeSh0aWR5Z3JhcGgpCmxpYnJhcnkoZ2dyYXBoKQpzb3VyY2UoaGVyZTo6aGVyZSgicGxvdHRpbmdfc2NyaXB0cy9uZXR3b3JrX2Z1bmN0aW9ucy5SIikpCnJ1bl9zY3JpcHRzIDwtIEYKY29tbXVuaXRpZXMgPC0gcmVhZF9jc3YoaGVyZTo6aGVyZSgiZGF0YS9vdXRwdXQvY29tbXVuaXRpZXMuY3N2IikpCmBgYAoKIyBJbnRyb2R1Y3Rpb24KCi0gVGhlIFIgc2NyaXB0cyAoc291cmNlZCBpbiB0aGlzIFJtZCkgY2FuIGJlIHJ1biBleHRlcm5hbGx5IHRvIFJzdHVkaW8uCi0gVGhlIFIgc2NyaXB0cyBhcmUgb25seSBmb3Igc2F2aW5nIFIgZnVuY3Rpb25zLCBwcm9jZXNzaW5nIHJhdyBhbmQgdGVtcG9yYXJ5IGRhdGEuCi0gQWxsIHZpc3VhbGl6YXRpb24gY29kZXMgYXJlIGluIHRoaXMgUm1kIGZpbGUuCgojIDAzQS1tYWtlX25ldHdvcmsKCi0gTWFrZSBjb21tdW5pdHkgbmV0d29yayBmcm9tIGBkYXRhL291dHB1dC9wYWlycy5jc3ZgLgoKLSBQbG90IG5ldHdvcmtzIGFuZCBtYXRyaWNlcwoKIyMgTWFrZSBuZXR3b3JrCgpgYGB7cn0KaWYgKHJ1bl9zY3JpcHRzKSBzb3VyY2UoInNjcmlwdC8wM0EtbWFrZV9uZXR3b3JrLTAxLW1ha2VfcGFpcndpc2VfbmV0d29yay5SIikKYGBgCgoKYGBge3IgZmlnLndpZHRoPTEwLCBmaWcuaGVpZ2h0PTh9CmxvYWQoaGVyZTo6aGVyZSgiZGF0YS9vdXRwdXQvbmV0d29ya19jb21tdW5pdHkuUmRhdGEiKSkKcF9uZXRfbGlzdCA8LSBsYXBwbHkobmV0X2xpc3QsIHBsb3RfY29tcGV0aXRpdmVfbmV0d29yaykgJT4lIHN1cHByZXNzV2FybmluZ3MoKQpwbG90X2dyaWQocGxvdGxpc3QgPSBwX25ldF9saXN0LCBuY29sID0gNCkKYGBgCgoKIyMgUmFuZG9taXplIG5ldHdvcmtzCgpgYGB7cn0KaWYgKHJ1bl9zY3JpcHRzKSBzb3VyY2UoInNjcmlwdC8wM0EtbWFrZV9uZXR3b3JrLTAzLXJhbmRvbWl6ZV9uZXR3b3JrLlIiKQpgYGAKCkZvciByZWNvcmQsIGl0IHRvb2sgMjYwMyBzZWNvbmRzIH49IDQwIG1pbnMgdG8gZ2VuZXJhdGUgMTAwMDAgcmFuZG9taXplZCBuZXR3b3JrcyBmb3IgYWxsIDEzIGNvbW11bml0aWVzLiAKCkl0IHRvb2sgfjUwIHNlY29uZHMgdG8gcmFuZG9taXplIDEwMDAgdGltZXMgZm9yIGVhY2ggb2YgdGhlIGNvbW11bml0aWVzLiBTbyB0b3RhbCBvZiA2NDEgc2Vjb25kcyBuZWVkZWQuCgpUaGUgcmFuZG9taXplZCBuZXR3b3JrcyBhcmUgc2F2ZWQgaW4gYGRhdGEvb3V0cHV0L25ldHdvcmtfcmFuZG9taXplZC5SZGF0YWAgd2hpY2ggY29udGFpbnMgYSB0d28tbGF5ZXIgUiBsaXN0IGBuZXRfcmFuZG9taXplZF9saXN0YCBpbiB3aGljaCB0aGUgZmlyc3QgbGF5ZXIgaGFzIHRoZSAxMyBjb21tdW5pdGllcyBhbmQgdGhlIHNlY29uZCBsYXllciBoYXMgMTAwMCByYW5kb21pemVkIG5ldHdvcmtzLgoKRXhhbXBsZSBvZiByYW5kb21pemVkIG5ldHdvcmsgbWF0cml4CmBgYHtyIGZpZy53aWR0aCA9IDMsIGZpZy5oZWlnaHQgPSAzfQpsb2FkKGhlcmU6OmhlcmUoImRhdGEvb3V0cHV0L25ldHdvcmtfcmFuZG9taXplZC5SZGF0YSIpKQpuZXRfcmFuZG9taXplZF9saXN0JEMxMVIyW1sxXV0gJT4lIHBsb3RfYWRqYWNlbnRfbWF0cml4KCkKYGBgCgoKIyAwM0ItbmV0d29ya19tZWFzdXJlCgojIyBEZXRlY3QgbW90aWZzIGluIG5ldHdvcmtzCgpgYGB7ciBldmFsID0gRn0KIyBUaGlzIG1heSB0YWtlIH41IG1pbnV0ZXMgZm9yIDEwMDAwIGJvb3RzdHJhcHBpbmcKaWYgKHJ1bl9zY3JpcHRzKSBzb3VyY2UoInNjcmlwdC8wM0ItbmV0d29ya19tZWFzdXJlLTAxLWRldGVjdF9tb3RpZi5SIikKYGBgCgotIGBuZXR3b3Jrc19tb3RpZmA6IGRhdGEuZnJhbWUKLSBgbmV0d29ya3NfbW90aWZfcmFuZG9taXplZGA6IGRhdGEuZnJhbWUgZm9yIGFsbCByYW5kb21pemVkIG5ldHdvcmtzIG1vdGlmIGNvdW50cwoKRW1waXJpY2FsIG5ldHdvcmsgbW90aWZzLiAxMyBjb21tdW5pdGllcyB4IDcgbW90aWZzID0gOTEgcm93cwoKYGBge3J9Cm5ldHdvcmtzX21vdGlmIDwtIHJlYWRfY3N2KGhlcmU6OmhlcmUoImRhdGEvb3V0cHV0L25ldHdvcmtzX21vdGlmLmNzdiIpKQpuZXR3b3Jrc19tb3RpZgpgYGAKClNodWZmbGVkIG5ldHdvcmsgbW90aWZzLiAxMyBjb21tdW5pdGllcyB4IDcgbW90aWZzIHggMTAwMCBib290c3RyYXBzID0gOTEwMDAgcm93cwoKYGBge3J9Cm5ldHdvcmtzX21vdGlmX3JhbmRvbWl6ZWQgPC0gcmVhZF9jc3YoaGVyZTo6aGVyZSgiZGF0YS9vdXRwdXQvbmV0d29ya3NfbW90aWZfcmFuZG9taXplZC5jc3YiKSkKbmV0d29ya3NfbW90aWZfcmFuZG9taXplZApgYGAKCiMjIENvbXBldGl0aXZlIGhpZXJhcmNoeQoKYGBge3J9CmlmIChydW5fc2NyaXB0cykgc291cmNlKCJzY3JpcHQvMDNCLW5ldHdvcmtfbWVhc3VyZS0wMi1jb21wZXRpdGl2ZV9oaWVyYXJjaHkuUiIpCmBgYAoKU2VlIEhpZ2dpbnMyMDE3IGZvciB0aGUgaGllcmFyY2h5IHNjb3JlIGNhbGN1bGF0aW9uLiBCcmllZmx5LCB0aGUgaGllcmFyY2h5IHNjb3JlIGlzIGJhc2VkIG9uIHRoZSByZWxhdGl2ZSBhYnVuZGFuY2Ugb2YgZWFjaCBwYWlyIGFuZCBpdCByYW5nZXMgZnJvbSAwLjUgKHB1cmUgbm9uLWhpZXJhcmNoeSB3aXRoIGFsbCBwYWlycyBjb2V4aXN0IGF0IDUwJTo1MCUpIHRvIDEgKHB1cmUgaGllcmFyY2h5IHdpdGggYWxsIHBhaXJzIGJlaW5nIGV4Y2x1c2lvbiBhbmQgZm9ybWluZyBhIHRyYW5zaXRpdmUgbmV0d29yaykuCgpUaGUgaGllcmFyY2h5IHNjb3JlIG9mIGVhY2ggY29tbXVuaXRpZXMgaXMgY29tcGFyZWQgdG8gYSBzZXQgb2YgMTAwMCByYW5kb21pemVkIG5ldHdvcmtzIHdoaWNoIGtlZXBzIHRoZSBzYW1lIHJlbGF0aXZlIGFidW5kYW5jZXMgb2YgZWFjaCBwYWlycyBidXQgc2h1ZmZsZWQuIAoKCiMjIERpYWdvbmFsIGFuYWx5c2lzCgpgYGB7cn0KIyBJdCB0YWtlcyAyNiBtaW51dGVzIHRvIHJ1biB0aGlzIHNjcmlwdCBmb3IgMTAwMDAgYm9vdHN0cmFwcwppZiAocnVuX3NjcmlwdHMpIHNvdXJjZSgic2NyaXB0LzAzQi1uZXR3b3JrX21lYXN1cmUtMDMtZGlzdGFuY2VfdG9fZGlhZ29uYWwuUiIpCmBgYAoKRm9yIHJlY29yZCwgaXQgdG9vayAxNjU1IHNlY29uZHMgfj0gMjYgbWludXRlcyB0byBjb21wdXRlIHRoZSBkaWFnb25hbCBtZWFzdXJlcyBmb3IgMTMgY29tbXVuaXRpZXMgWCAxMDAwMCByYW5kb21pemF0aW9uLCBtZXJnZSB0aGVtIGludG8gb25lIHNpbmdsZSBkYXRhIGZyYW1lLgoKYGRhdGEvb3V0cHV0L25ldHdvcmtzX2RpYWdgCgpgZGF0YS9vdXRwdXQvbmV0d29ya3NfZGlhZ19yYW5kb21pemVkYAoKRm9yIGEgbmV0d29yayBtYXRyaXggJG1fe2lqfSQsIHRoZSBmcmFjdGlvbiBvZiBjb2V4aXN0ZW5jZSBhcyBhIGZ1Y250aW9uIG9mIGRpc3RhbmNlIHRvIGRpYWdvbmFsIGlzIGNhbGN1bGF0ZWQgYXMgdGhlCgokJFxmcmFje317XGx2ZXJ0IGktaiBcbHZlcnR9JCQKIApgbmV0d29ya3NfZGlhZ19yYW5kb21pemVkYCBoYXMgZm91ciBjb2x1bW5zCgpgUmFuZG9taXphdGlvbmA6IHRoZSBudW1iZXIgb2YgcmFuZG9taXphdGlvbiAKCmBgYHtyfQpuZXR3b3Jrc19kaWFnIDwtIHJlYWRfY3N2KGhlcmU6OmhlcmUoImRhdGEvb3V0cHV0L25ldHdvcmtzX2RpYWcuY3N2IikpCm5ldHdvcmtzX2RpYWdfcmFuZG9taXplZApgYGAKCmBgYHtyfQpuZXR3b3Jrc19kaWFnX3JhbmRvbWl6ZWQgPC0gcmVhZF9jc3YoaGVyZTo6aGVyZSgiZGF0YS9vdXRwdXQvbmV0d29ya3NfZGlhZ19yYW5kb21pemVkLmNzdiIpKQpuZXR3b3Jrc19kaWFnX3JhbmRvbWl6ZWQKYGBgCgoKCgojIFN1bW1hcnkKCgotIGBpc29sYXRlc2A6IDY4IGlzb2xhdGVzCi0gYHBhaXJzYDogMTg2IHBhaXJzCi0gYGNvbW11bml0aWVzYDogbWV0YWRhdGEgb2YgMTMgY29tbXVuaXRpZXMKLSBgbmV0d29ya19jb21tdW5pdHkuUmRhdGFgIHNhdmVzIG9uZSBSIGxpc3RzLiBgbmV0X2xpc3RgICBoYXMgMTMgYHRibF9ncmFwaGAgb2JqZWN0cy4gdGhhdCBkZXNjcmliZXMgdGhlIGNvbXBldGl0aXZlIG5ldHdvcmtzIG9mIG15IGNvbW11bml0aWVzLCB3aGVyZSBgcF9uZXRfbGlzdGAgaGFzIDEzIHBpY3R1cmVzLgoKYGBge3IgZWNobyA9IFR9Cmlzb2xhdGVzIDwtIHJlYWRfY3N2KGhlcmU6OmhlcmUoImRhdGEvb3V0cHV0L2lzb2xhdGVzLmNzdiIpKQpwYWlycyA8LSByZWFkX2NzdihoZXJlOjpoZXJlKCJkYXRhL291dHB1dC9wYWlycy5jc3YiKSkKY29tbXVuaXRpZXMgPC0gcmVhZF9jc3YoaGVyZTo6aGVyZSgiZGF0YS9vdXRwdXQvY29tbXVuaXRpZXMuY3N2IikpCmxvYWQoaGVyZTo6aGVyZSgiZGF0YS9vdXRwdXQvbmV0d29ya19jb21tdW5pdHkuUmRhdGEiKSkKYGBgCgoKIyMgQ29udmVydCB0aGUgZ3JhcGggZmlsZSBpbnRvIHR4dCAKClNvIHRoYXQgdGhlIGdyYXBoIGlzIHJlYWRhYmxlIGluIHB5dGhvbgoKYGBge3J9CmxvYWQoaGVyZTo6aGVyZSgiZGF0YS9vdXRwdXQvbmV0d29ya19jb21tdW5pdHkuUmRhdGEiKSkKbG9hZChoZXJlOjpoZXJlKCJkYXRhL291dHB1dC9tb3RpZl9saXN0LlJkYXRhIikpCgojIE9ubHkgdXNlIHRob3NlIHRoYXQgYXJlIApsaWJyYXJ5KGlncmFwaCkKZm9yIChpIGluIDE6bGVuZ3RoKG5ldF9saXN0KSkgewogICAgd3JpdGVfZ3JhcGgobmV0X2xpc3RbW2ldXSwgaGVyZTo6aGVyZShwYXN0ZTAoImRhdGEvdGVtcC9uZXR3b3Jrcy8iLCBuYW1lcyhuZXRfbGlzdClbaV0sICIudHh0IikpKQp9CmZvciAoaSBpbiAxOmxlbmd0aChtb3RpZl9saXN0KSkgewogICAgd3JpdGVfZ3JhcGgobW90aWZfbGlzdFtbaV1dLCBoZXJlOjpoZXJlKHBhc3RlMCgiZGF0YS90ZW1wL25ldHdvcmtzL21vdGlmIiwgaSwgIi50eHQiKSkpCn0KCgp3cml0ZV9ncmFwaChuZXRfbGlzdFtbaV1dLCBoZXJlOjpoZXJlKHBhc3RlMCgiZGF0YS90ZW1wL25ldHdvcmtzLyIsIG5hbWVzKG5ldF9saXN0KVtpXSwgIi50eHQiKSkpCndyaXRlX2dyYXBoKG1vdGlmX2xpc3RbW2ldXSwgaGVyZTo6aGVyZShwYXN0ZTAoImRhdGEvdGVtcC9uZXR3b3Jrcy8iLCBuYW1lcyhuZXRfbGlzdClbaV0sICIudHh0IikpKQoKYGBgCgoKCiMjIFBsb3QgbmV0d29yayBpbiBtYXRyaXgKClVwcGVyIGhhbGYgbWF0cmljZXMKCmBgYHtyIGZpZy53aWR0aD01LCBmaWcuaGVpZ2h0PTh9CnBfbmV0X21hdHJpeF9saXN0IDwtIGxhcHBseShuZXRfbGlzdCwgZnVuY3Rpb24oeCkgcGxvdF9hZGphY2VudF9tYXRyaXgoeCkpICU+JSBzZXROYW1lcyhjb21tdW5pdGllcyRDb21tdW5pdHkpCnBfbmV0X21hdHJpeF9saXN0IDwtIHBfbmV0X21hdHJpeF9saXN0W29yZGVyKGNvbW11bml0aWVzJENvbW11bml0eVNpemUsIGRlY3JlYXNpbmcgPSBUKV0KcGxvdF9ncmlkKHBsb3RsaXN0ID0gcF9uZXRfbWF0cml4X2xpc3QsIGxhYmVscyA9IExFVFRFUlNbMjoxNF0sIG5jb2wgPSAzLCBoanVzdCA9IDEpCmBgYAoKIyMgUGxvdCBuZXR3b3JrIGluIGdyYXBoCgpUaGVyZSBhcmUgc29tZSBmdW5jdGlvbnMgdG8gcGxheSB3aXRoIApgYGB7ciwgZmlnLndpZHRoPTUsIGZpZy5oZWlnaHQ9OH0KcF9uZXRfbGlzdCA8LSBwX25ldF9saXN0W29yZGVyKGNvbW11bml0aWVzJENvbW11bml0eVNpemUsZGVjcmVhc2luZyA9IFQpXQpwbG90X2dyaWQocGxvdGxpc3QgPSBwX25ldF9saXN0LCBsYWJlbHMgPSBMRVRURVJTWzI6MTRdLCBuY29sID0gMywgaGp1c3QgPSAtMSkKYGBgCgojIyBDb21iaW5lIG1hdHJpeCBhbmQgbmV0d29yayBwbG90CgpgYGB7cn0KcF9saXN0IDwtIHJlcChsaXN0KE5BKSwgbGVuZ3RoKG5ldF9saXN0KSkKbmFtZXMocF9saXN0KSA8LSBjb21tdW5pdGllcyRDb21tdW5pdHkKCmZvciAoaSBpbiAxOmxlbmd0aChuZXRfbGlzdCkpIHsKICBwX2xpc3RbW2ldXSA8LSBnZ2RyYXcocF9uZXRfbWF0cml4X2xpc3RbW2ldXSkgKwogICAgZHJhd19wbG90KHBsb3QgPSBwX25ldF9saXN0W1tpXV0sIHggPSAwLCB5ID0gMCwgd2lkdGggPSAwLjQ1LCBoZWlnaHQgPSAwLjUpCn0KYGBgCgoKYGBge3IsIGZpZy53aWR0aD0xMCwgZmlnLmhlaWdodD0xNn0KcCA8LSBwbG90X2dyaWQocGxvdGxpc3QgPSBwX2xpc3QsIG5jb2wgPSAzLCBoanVzdCA9IC0xLCB2anVzdCA9IDEpCmdnc2F2ZSgiZmlndXJlLzAzLW5ldHdvcmtzLnBuZyIsIHdpZHRoID0gMjAsIGhlaWdodCA9IDMyKQpwCmBgYAoKCgo=